package com.qing.common.base

import com.google.common.util.concurrent.ListenableFuture
import java.util.concurrent.Callable
import java.util.concurrent.Executor


interface BaseExecutor : Executor, AutoCloseable {

    fun executeDelayed(command: Runnable, delay: Long)

    fun <T> listenerExecute(command: Callable<T>): ListenableFuture<T>

    fun post(command: Runnable)

    fun postDelayed(command: Runnable, delay: Long)
}